HAL DAC constants migration

This section provides information about the HAL DAC constants migration.

HAL DAC error code constants

In HAL2, a distinct DMA error code is provided for each individual channel.

HAL1

HAL2

#define  HAL_DAC_ERROR_NONE
#define  HAL_DAC_ERROR_DMAUNDERRUNCH1
#define  HAL_DAC_ERROR_DMAUNDERRUNCH2
#define  HAL_DAC_ERROR_DMA


#define  HAL_DAC_ERROR_TIMEOUT
#define HAL_DAC_ERROR_INVALID_CALLBACK
#define HAL_DAC_ERROR_INVALID_CONFIG
#define HAL_DAC_ERROR_NONE
#define HAL_DAC_ERROR_DMA_UNDERRUN_CH1
#define HAL_DAC_ERROR_DMA_UNDERRUN_CH2
#define HAL_DAC_ERROR_DMA_CH1
#define HAL_DAC_ERROR_DMA_CH2


Removed ; These kinds of logical errors are reported by direct function return.

Related concept: Revised and optimized HAL error management


HAL DAC channels constants

HAL1

HAL2



#define DAC_CHANNEL_1
#define DAC_CHANNEL_2
typedef enum
{
    HAL_DAC_CHANNEL_1,
    HAL_DAC_CHANNEL_2
} hal_dac_channel_t;

HAL DAC channel trigger constants

HAL1

HAL2



#define DAC_TRIGGER_NONE
#define DAC_TRIGGER_SOFTWARE
#define DAC_TRIGGER_T1_TRGO
#define DAC_TRIGGER_T2_TRGO
            .
            .
            .
            .
#define DAC_TRIGGER_HRTIM_TRG01
#define DAC_TRIGGER_HRTIM_TRG02
#define DAC_TRIGGER_HRTIM_TRG03
typedef enum
{
    HAL_DAC_TRIGGER_NONE,
    HAL_DAC_TRIGGER_SOFTWARE,
    HAL_DAC_TRIGGER_TIM1_TRGO,
    HAL_DAC_TRIGGER_TIM2_TRGO,
            .
            .
            .
            .
    HAL_DAC_TRIGGER_HRTIM1_TRG1,
    HAL_DAC_TRIGGER_HRTIM1_TRG2,
    HAL_DAC_TRIGGER_HRTIM1_TRG3
 } hal_dac_trigger_t;

HAL DAC channel output buffer mode constants

HAL1

HAL2



#define DAC_OUTPUTBUFFER_ENABLE
#define DAC_OUTPUTBUFFER_DISABLE
typedef enum
{
    HAL_DAC_OUTPUT_BUFFER_ENABLED,
    HAL_DAC_OUTPUT_BUFFER_DISABLED
} hal_dac_output_buffer_status_t;

HAL DAC channel data alignment constants

HAL1

HAL2



#define DAC_ALIGN_12B_R
#define DAC_ALIGN_12B_L
#define DAC_ALIGN_8B_R
typedef enum
{
    HAL_DAC_DATA_ALIGN_12_BITS_RIGHT,
    HAL_DAC_DATA_ALIGN_12_BITS_LEFT,
    HAL_DAC_DATA_ALIGN_8_BITS_RIGHT
} hal_dac_data_alignment_t;

HAL DAC channel output connection constants

  • In HAL1, some series have the definitions DAC_CHIPCONNECT_EXTERNAL and DAC_CHIPCONNECT_INTERNAL, while others have DAC_CHIPCONNECT_DISABLE and DAC_CHIPCONNECT_ENABLE.

  • In HAL2, DAC_CHIPCONNECT_EXTERNAL and DAC_CHIPCONNECT_INTERNAL become HAL_DAC_OUTPUT_CONNECTION_EXTERNAL and HAL_DAC_OUTPUT_CONNECTION_INTERNAL.

  • In HAL2, DAC_CHIPCONNECT_DISABLE and DAC_CHIPCONNECT_ENABLE become HAL_DAC_OUTPUT_CONNECTION_EXTERNAL and HAL_DAC_OUTPUT_CONNECTION_INTERNAL.

HAL1

HAL2


#define DAC_CHIPCONNECT_EXTERNAL
/* or */
#define DAC_CHIPCONNECT_DISABLE

#define DAC_CHIPCONNECT_INTERNAL
/* or */
#define DAC_CHIPCONNECT_ENABLE


#define DAC_CHIPCONNECT_BOTH
typedef enum
{

    HAL_DAC_OUTPUT_CONNECTION_EXTERNAL,



    HAL_DAC_OUTPUT_CONNECTION_INTERNAL

} hal_dac_output_connection_t ;

Removed ; DAC_CHIPCONNECT_BOTH has been removed. In HAL2, the equivalent behavior is achieved by using HAL_DAC_OUTPUT_CONNECTION_INTERNAL with the DAC output buffer configured as HAL_DAC_OUTPUT_BUFFER_ENABLED.

HAL DAC high frequency interface mode constants

HAL1

HAL2



#define DAC_HIGH_FREQUENCY_INTERFACE_MODE_DISABLE
#define DAC_HIGH_FREQUENCY_INTERFACE_MODE_ABOVE_80MHZ
#define DAC_HIGH_FREQUENCY_INTERFACE_MODE_ABOVE_160MHZ


#define DAC_HIGH_FREQUENCY_INTERFACE_MODE_AUTOMATIC
typedef enum
{
    HAL_DAC_HIGH_FREQ_MODE_DISABLED,
    HAL_DAC_HIGH_FREQ_MODE_ABOVE_80MHZ,
    HAL_DAC_HIGH_FREQ_MODE_ABOVE_160MHZ
} hal_dac_high_freq_mode_t;

In HAL2, DAC_HIGH_FREQUENCY_INTERFACE_MODE_AUTOMATIC mode is managed by the dedicated HAL API HAL_DAC_GetOptimumFrequencyMode().

HAL DAC triangle and noise amplitude

  • In HAL2, the DAC LFSR unmask and triangle amplitude configurations are now represented by a single enumeration, hal_dac_wave_amplitude_t.

HAL1

HAL2



#define DAC_LFSRUNMASK_BIT0
#define DAC_LFSRUNMASK_BITS1_0
#define DAC_LFSRUNMASK_BITS2_0
#define DAC_LFSRUNMASK_BITS3_0
#define DAC_LFSRUNMASK_BITS4_0
#define DAC_LFSRUNMASK_BITS5_0
#define DAC_LFSRUNMASK_BITS6_0
#define DAC_LFSRUNMASK_BITS7_0
#define DAC_LFSRUNMASK_BITS8_0
#define DAC_LFSRUNMASK_BITS9_0
#define DAC_LFSRUNMASK_BITS10_0
#define DAC_LFSRUNMASK_BITS11_0

#define DAC_TRIANGLEAMPLITUDE_15
#define DAC_TRIANGLEAMPLITUDE_3
#define DAC_TRIANGLEAMPLITUDE_7
#define DAC_TRIANGLEAMPLITUDE_15
#define DAC_TRIANGLEAMPLITUDE_31
#define DAC_TRIANGLEAMPLITUDE_63
#define DAC_TRIANGLEAMPLITUDE_127
#define DAC_TRIANGLEAMPLITUDE_255
#define DAC_TRIANGLEAMPLITUDE_511
#define DAC_TRIANGLEAMPLITUDE_1023
#define DAC_TRIANGLEAMPLITUDE_2047
#define DAC_TRIANGLEAMPLITUDE_4095
typedef enum
{
    HAL_DAC_WAVE_AMPLITUDE_1,
    HAL_DAC_WAVE_AMPLITUDE_3,
    HAL_DAC_WAVE_AMPLITUDE_7,
    HAL_DAC_WAVE_AMPLITUDE_15,
    HAL_DAC_WAVE_AMPLITUDE_31,
    HAL_DAC_WAVE_AMPLITUDE_63,
    HAL_DAC_WAVE_AMPLITUDE_127,
    HAL_DAC_WAVE_AMPLITUDE_255,
    HAL_DAC_WAVE_AMPLITUDE_511,
    HAL_DAC_WAVE_AMPLITUDE_1023,
    HAL_DAC_WAVE_AMPLITUDE_2047,
    HAL_DAC_WAVE_AMPLITUDE_4095
} hal_dac_wave_amplitude_t;

Related concepts :


HAL DAC channel sample and hold mode constants

HAL1

HAL2

In HAL1, the DAC sample and hold mode is a member of the DAC_ChannelConfTypeDef structure.

Removed ; In HAL2, the DAC sample and hold mode is managed by unitary functions in the HAL layer.

For more details, refer to HAL DAC channel configuration type definition.

#define DAC_SAMPLEANDHOLD_DISABLE
#define DAC_SAMPLEANDHOLD_ENABLE
HAL_DAC_DisableChannelSampleAndHold(hal_dac_handle_t *hdac, hal_dac_channel_t channel)
HAL_DAC_EnableChannelSampleAndHold(hal_dac_handle_t *hdac, hal_dac_channel_t channel)

HAL DAC autonomous mode status constants

HAL1

HAL2

In HAL1, the DAC autonomous mode is a member of the DAC_ChannelConfTypeDef structure.

Removed ; In HAL2, the DAC autonomous mode is managed by unitary functions in the HAL layer.

For more details, refer to HAL DAC channel configuration type definition.

#define DAC_AUTONOMOUS_MODE_DISABLE
#define DAC_AUTONOMOUS_MODE_ENABLE
HAL_DAC_AM_Disable(hal_dac_handle_t *hdac)
HAL_DAC_AM_Enable(hal_dac_handle_t *hdac)

HAL DAC user trimming constants

HAL1

HAL2

In HAL1, DAC user trimming is configured through the DAC_ChannelConfTypeDef structure, using the DAC_TRIMMING_FACTORY or DAC_TRIMMING_USER options.

Removed ; In HAL2, use HAL_DAC_SetChannelBufferCalibrationValue() with the appropriate calibration value, equivalent to the trimming_value parameter of the DAC_ChannelConfTypeDef structure in HAL1.

#define DAC_TRIMMING_FACTORY
#define DAC_TRIMMING_USER
HAL_DAC_SetChannelBufferCalibrationValue(&hdac, HAL_DAC_CHANNEL_1, 31);

HAL DAC flags constants

The listed defines in HAL1 are used by : HAL DAC get flag, and HAL DAC clear flag.

HAL1

HAL2



#define DAC_FLAG_DMAUDR1
#define DAC_FLAG_DMAUDR2
#define DAC_FLAG_DAC1RDY
#define DAC_FLAG_DAC2RDY

All DAC flag definitions and macros are removed from HAL2.

  • Removed; Use LL_DAC_IsActiveFlag_DMAUDR1 / LL_DAC_ClearFlag_DMAUDR1.

  • Removed; Use LL_DAC_IsActiveFlag_DMAUDR2 / LL_DAC_ClearFlag_DMAUDR2.

  • Removed; Use LL_DAC_IsActiveFlag_DAC1RDY.

  • Removed; Use LL_DAC_IsActiveFlag_DAC2RDY.


HAL DAC IT constants

The listed defines in HAL1 are used by : HAL DAC enable interrupt, HAL DAC disable interrupt, and HAL DAC get it source.

HAL1

HAL2


#define DAC_IT_DMAUDR1

#define DAC_IT_DMAUDR2

All DAC interrupt definitions and macros are removed from HAL2.

Removed ; Use LL_DAC_EnableIT_DMAUDR1 / LL_DAC_DisableIT_DMAUDR1 / LL_DAC_IsEnabledIT_DMAUDR1 instead.

Removed ; Use LL_DAC_EnableIT_DMAUDR2 / LL_DAC_DisableIT_DMAUDR2 / LL_DAC_IsEnabledIT_DMAUDR2 instead.


HAL DAC sawtooth direction mode constants

HAL1

HAL2

#define DAC_SAWTOOTH_POLARITY_DECREMENT
#define DAC_SAWTOOTH_POLARITY_INCREMENT

Removed ; Use LL_DAC_SAWTOOTH_DIRECTION_DECREMENT and LL_DAC_SAWTOOTH_DIRECTION_INCREMENT instead.

HAL DAC Delay startup constants

HAL1

HAL2

#define DAC_DELAY_STARTUP_US

Moved to the private constants section, as it defines the internal threshold for transitioning the DAC from the disabled to the enabled state.